home *** CD-ROM | disk | FTP | other *** search
/ Directorty Opus 5 - Magellan 2 / Opus 5 - Magellan 2.iso / Extras / MaxManagerDemo / MaxManager / Rexx / AminetTosser.rexx next >
OS/2 REXX Batch file  |  1996-04-23  |  5KB  |  154 lines

  1.  
  2. /*###################################################################
  3. ##                                                                 ##
  4. ##      Aminet Tosser - ARexx script for W.F.M.H. MaxManager       ##
  5. ##                                                                 ##
  6. ##                    © 1996 Marcin Orîowski                       ##
  7. ##                                                                 ##
  8. #####################################################################
  9. ##                                                                 ##
  10. ## $VER: AminetTosser 1.0 (04.04.96)                               ##
  11. ##                                                                 ##
  12. #####################################################################
  13. ##                                                                 ##
  14. ## For a long time, we here at SilverDream!'s BBS got the Aminet   ##
  15. ## mirror. This is demo script but we're using very simmilar one   ##
  16. ## and I decided to included it to the program distribution to     ##
  17. ## show you the potential power of usage of MaxManager Rexx port.  ##
  18. ## Its main usage is to simplify the new file tossing process      ##
  19. ## used to do manually (having no ARexx port in MaxManager... :-)  ##
  20. ## Now, using this small script we can do this automatically,      ##
  21. ## and what's more important, uncomparable faster.                 ##
  22. ##                                                                 ##
  23. ##                                                                 ##
  24. ##  Basic principles:                                              ##
  25. ##                                                                 ##
  26. ##  * Files to toss are placed in SOURCE section (due to internal  ##
  27. ##    structure of SD!'s - new files always appears in NEW FILES   ##
  28. ##    section, and then after defined period are moved to their    ##
  29. ##    destination sections.                                        ##
  30. ##                                                                 ##
  31. ##  * Script recognizes type of file basing on it's comment,       ##
  32. ##    which is expected to be the same as Aminet's SHORT: field    ##
  33. ##    of .README file preceded by TYPE: field. Example:            ##
  34. ##                                                                 ##
  35. ##    Filename          Description                                ##
  36. ##    ¯¯¯¯¯¯¯¯¯¯        ¯¯¯¯¯¯¯¯¯¯¯¯¯                              ##
  37. ##    MaxManager.lha    (comm/maxs) DirectoryOpus for MAX's BBS    ##
  38. ##                                                                 ##
  39. ##    There's no possibility to badly match the file by its name   ##
  40. ##    because of using / (slash) char, not allowed in file names.  ##
  41. ##                                                                 ##
  42. #####################################################################
  43. ##                                                                 ##
  44. ## Last update: Thu Apr  4 23:03:02 1996                           ##
  45. ##                                                                 ##
  46. ###################################################################*/
  47.  
  48.  
  49. OPTIONS RESULTS
  50. ADDRESS MAX_MANAGER.1
  51.  
  52.  
  53. /* Setting source section */
  54.  
  55. SOURCE = 14
  56.  
  57.  
  58. /* Setting patterns and destination sections */
  59. /* We can't use brackets due to its special  */
  60. /* meaning for AmigaDOS pattern functions    */
  61.  
  62. /* Change this to fit your needs.            */
  63.  
  64. MaxPatterns = 3
  65.  
  66. Dest.1.1 = 92 ; Dest.1.2 = "((?dev/gcc#?)|(?dev/c#?))"
  67. Dest.2.1 = 56 ; Dest.2.2 = "?pix/#?"
  68. Dest.3.1 = 99 ; Dest.3.2 = "Girls#?"
  69.  
  70.  
  71. /* Deiconify program if it sleeps */
  72.  
  73.  SHOW
  74.  
  75.  
  76. /* Is there something to work on? If no, load it */
  77.  
  78. 'QUERY 0'
  79. IF RC = 0 THEN
  80.     DO
  81.         'OKAY2 "No database loaded.*nCan I load it now?"'
  82.         IF RC = 1 THEN
  83.             LOAD_BBS
  84.         ELSE
  85.             DO
  86.                 'OKAY1 "Nothing to do... Exiting."'
  87.                 EXIT
  88.             END
  89.     END
  90.  
  91.  
  92. /* Ask for SysOp's confirmation */
  93.  
  94. 'OKAY2 "We are about to toss some files*nShall we continue?"'
  95. IF rc = 0 THEN EXIT
  96.  
  97.  
  98. /* Disabling info requesters and storing previous state */
  99.  
  100. 'INFO_REQ 0'
  101. req_state = RC
  102.  
  103.  
  104. /* Setting source section */
  105.  
  106. SECTION SOURCE LEFT
  107. SRC_LEFT
  108. NONE
  109.  
  110.  
  111. /* We want MaxManager to match filecoments as well */
  112.  
  113. 'MATCH_BASE_MODE 1'
  114.  
  115.  
  116. /* Get, set, go... */
  117.  
  118. Temp = TIME(R)
  119.  
  120.  
  121. /* So here the loop begins... */
  122.  
  123. Total = 0
  124. DO Pattern = 1 FOR MaxPatterns
  125.  
  126.     MATCH Dest.Pattern.2
  127.     Total = Total + RC
  128.     IF RC > 0 THEN
  129.     DO
  130.         SECTION Dest.Pattern.1 RIGHT
  131.         MOVE
  132.         NONE
  133.     END
  134.  
  135. END
  136.  
  137.  
  138. /* Restoring user state of info requesters switch */
  139.  
  140. INFO_REQ req_state
  141.  
  142.  
  143. /* Finito... */
  144.  
  145. IF Total > 0 THEN
  146.     OKAY1 """Done!*n*nAre you sure you*ncan toss " || Total || " files*nfaster by your hands*n(it took me " || TIME(E) || " secs)?"""
  147. ELSE
  148.     OKAY1 """Zero files? Are you kidding?*nCan't you do nothing yourself?"""
  149.  
  150.  
  151. /* Open save window at the end */
  152.  
  153. SAVE_BBS
  154.